package com.easyjava.builder.strategy.enums;

import com.easyjava.builder.strategy.impl.XmlFieldBaseQueryConditionExtendImpl;
import com.easyjava.builder.strategy.impl.XmlFieldBaseQueryConditionImpl;
import com.easyjava.builder.strategy.impl.XmlFieldByKeyImpl;
import com.easyjava.builder.strategy.impl.XmlFieldColumnListImpl;
import com.easyjava.builder.strategy.impl.XmlFieldInsertBatchImpl;
import com.easyjava.builder.strategy.impl.XmlFieldInsertImpl;
import com.easyjava.builder.strategy.impl.XmlFieldInsertOrUpdateBatchImpl;
import com.easyjava.builder.strategy.impl.XmlFieldInsertOrUpdateImpl;
import com.easyjava.builder.strategy.impl.XmlFieldQueryConditionImpl;
import com.easyjava.builder.strategy.impl.XmlFieldResultMapImpl;
import com.easyjava.builder.strategy.impl.XmlFieldSelectCountImpl;
import com.easyjava.builder.strategy.impl.XmlFieldSelectListImpl;
import com.easyjava.builder.strategy.inf.MapperXmlStrategy;

public enum MapperXmlEnum {

    FIELD_RESULT_MAP(1, "字段结果映射", new XmlFieldResultMapImpl()),
    FIELD_COLUMN_LIST(2, "字段列名列表", new XmlFieldColumnListImpl()),
    FIELD_BASE_QUERY_CONDITION(3, "字段查询条件", new XmlFieldBaseQueryConditionImpl()),
    FIELD_BASE_QUERY_CONDITION_EXTEND(4, "字段查询条件扩展", new XmlFieldBaseQueryConditionExtendImpl()),
    FIELD_QUERY_CONDITION(5, "字段查询条件", new XmlFieldQueryConditionImpl()),
    FIELD_SELECT_LIST(6, "字段查询列表", new XmlFieldSelectListImpl()),
    FIELD_SELECT_COUNT(7, "字段查询数量", new XmlFieldSelectCountImpl()),
    FIELD_INSERT(8, "字段插入", new XmlFieldInsertImpl()),
    FIELD_INSERT_OR_UPDATE(9, "插入或更新", new XmlFieldInsertOrUpdateImpl()),
    FIELD_INSERT_BATCH(10, "批量插入", new XmlFieldInsertBatchImpl()),
    FIELD_INSERT_OR_UPDATE_BATCH(11, "批量插入或更新", new XmlFieldInsertOrUpdateBatchImpl()),
    FIELD_BY_KEY(12, "根据key处理", new XmlFieldByKeyImpl()),
    ;

    private int code;
    private String desc;
    private MapperXmlStrategy clazz;

    MapperXmlEnum(int code, String desc, MapperXmlStrategy clazz) {
        this.code = code;
        this.desc = desc;
        this.clazz = clazz;
    }

    public MapperXmlStrategy getClazz() {
        return clazz;
    }
}
